From: Rui Matos Date: Thu, 20 Mar 2014 13:54:04 +0000 (+0100) Subject: appDisplay: Ensure the currently focused icon is viewable X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~2588 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d0f69a72dc25af0b4230df6dd766e8ecc4a366f3;p=gnome-shell.git appDisplay: Ensure the currently focused icon is viewable We either scroll or paginate to the correct place when an icon gets key focus. https://bugzilla.gnome.org/show_bug.cgi?id=726759 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 2d8fc38f3..90fac8777 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -99,6 +99,9 @@ const BaseAppView = new Lang.Class({ else this._grid = new IconGrid.IconGrid(gridParams); + this._grid.connect('key-focus-in', Lang.bind(this, function(grid, actor) { + this._keyFocusIn(actor); + })); // Standard hack for ClutterBinLayout this._grid.actor.x_expand = true; @@ -106,6 +109,10 @@ const BaseAppView = new Lang.Class({ this._allItems = []; }, + _keyFocusIn: function(actor) { + // Nothing by default + }, + removeAll: function() { this._grid.destroyAll(); this._items = {}; @@ -558,7 +565,7 @@ const AllView = new Lang.Class({ })); }, - _ensureIconVisible: function(icon) { + _keyFocusIn: function(icon) { let itemPage = this._grid.getItemPage(icon); this.goToPage(itemPage); }, @@ -929,6 +936,10 @@ const FolderView = new Lang.Class({ this.actor.add_action(action); }, + _keyFocusIn: function(actor) { + Util.ensureActorVisibleInScrollView(this.actor, actor); + }, + createFolderIcon: function(size) { let layout = new Clutter.TableLayout(); let icon = new St.Widget({ layout_manager: layout,